Mnoho polozek v TListView
Otázka od: Jiri Cincura
11. 8. 2004 11:42
Ahoj,
potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru. Zaznamy
jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho. Nevi
nekdo, jak tento proces urychlit. Nejakou doprednou alokaci (nebot Destroy
ListView trva take dlouho). Snazim se o co nejmensi "prehazovani" pismen ve
StringListu. Delam pouze Delete a LeftStr, ktery davam do sloupcu. Zkousel
jsem i Delete vypustit a jit na to pres MidStr, ale vysledek byl jeste
horsi.
Jak teda nacitani citelne zrychlit. Pripadne nejaky lepsi zpusob, do ceho to
ukladat. Uvazoval jsem i pole recordu (a nezobrazoval bych to).
Nejake napady sem.
btw dale ten seznam prochazim sekvencne a porovnavam kazdy s kazdym coz take
trva dlouho, vi nekdo, jak to urychlit (nemuzu s tim nic delat tridit atp.
:[)?
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net
Odpovedá: Martin Cajbik
11. 8. 2004 12:43
Zdravim,
najlepsie by bolo v tomto pripade pouzit virtualny mod ListView.
Martin Cajbik
Jiri Cincura wrote:
> Ahoj,
> potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru. Zaznamy
> jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
> sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho. Nevi
> nekdo, jak tento proces urychlit. Nejakou doprednou alokaci (nebot Destroy
> ListView trva take dlouho). Snazim se o co nejmensi "prehazovani" pismen ve
> StringListu. Delam pouze Delete a LeftStr, ktery davam do sloupcu. Zkousel
> jsem i Delete vypustit a jit na to pres MidStr, ale vysledek byl jeste
> horsi.
>
> Jak teda nacitani citelne zrychlit. Pripadne nejaky lepsi zpusob, do ceho to
> ukladat. Uvazoval jsem i pole recordu (a nezobrazoval bych to).
>
> Nejake napady sem.
>
> btw dale ten seznam prochazim sekvencne a porovnavam kazdy s kazdym coz take
> trva dlouho, vi nekdo, jak to urychlit (nemuzu s tim nic delat tridit atp.
> :[)?
>
> --
> Jiri Cincura
Odpovedá: Andreas Bednarek
11. 8. 2004 12:55
> potrebuji nacitat do TListView kolem 40 tisic polozek ze souboru.
Zaznamy
> jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
> sloupcu v ListView (vsReport styl). To samozrejme trva strasne dlouho.
Klasika, pouzij LV ve virtualnim rezimu. Tzn. OwnerData := True a v udalosti
OnData mu teprv predavej data k zobrazeni takto:
Item.Caption := "1. sloupec";
Item.SubItems.Add("2. sloupec");
...
atd.
Nejdriv take musis zadat pocet polozek LV (Items.Count..?).
Data si musis ulozit ve vlastnim formatu (pokud nebudes cist primo ze
StringListu) a pokud pro to pouzijes napr. tridu TList, muzes pak pekne
pouzit jeji metodu Sort pro razeni.
Odpovedá: Bronislav Klucka
11. 8. 2004 16:32
Ahoj
Doporucuji TVirtualTreeView (vygoogli si ho)
Brona
> Ahoj,
> potrebuji nacitat do TListView kolem 40 tisic polozek ze
> souboru. Zaznamy
> jsou oddleny TAB. Nactu to do StringListu a z nej po radcich davam do
> sloupcu v ListView (vsReport styl). To samozrejme trva strasne
> dlouho. Nevi
> nekdo, jak tento proces urychlit. Nejakou doprednou alokaci (nebot Destroy
> ListView trva take dlouho). Snazim se o co nejmensi "prehazovani"
> pismen ve
> StringListu. Delam pouze Delete a LeftStr, ktery davam do sloupcu. Zkousel
> jsem i Delete vypustit a jit na to pres MidStr, ale vysledek byl jeste
> horsi.
>
> Jak teda nacitani citelne zrychlit. Pripadne nejaky lepsi zpusob,
> do ceho to
> ukladat. Uvazoval jsem i pole recordu (a nezobrazoval bych to).
>
> Nejake napady sem.
>
> btw dale ten seznam prochazim sekvencne a porovnavam kazdy s
> kazdym coz take
> trva dlouho, vi nekdo, jak to urychlit (nemuzu s tim nic delat tridit atp.
> :[)?
>
> --
> Jiri Cincura
> e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
> ICQ: 314711544
> web: http://www.cincura.net; http://photo.cincura.net
>
>
>
>
>
Odpovedá: Jiri Cincura
11. 8. 2004 18:00
Andreas Bednarek wrote:
>
> Klasika, pouzij LV ve virtualnim rezimu. Tzn. OwnerData := True a v
> udalosti OnData mu teprv predavej data k zobrazeni takto:
Ha, a ja to znal jen u TreeView.
Podivam se na to.
--
Jiri Cincura
e-mail: mailto:jiri@cincura.net; mailto:xcincura@informatics.muni.cz
ICQ: 314711544
web: http://www.cincura.net; http://photo.cincura.net